CAD 导入 Cesium 、高程与坐标一致

5 篇文章 2 订阅
2 篇文章 0 订阅

需求说明:

CC 算出来的 Cesium 3dtiles,导入到Cesium 之后,需要将CAD的一些图覆盖上去,并且坐标、高程一致。

1、先将3d Tiles导入 Cesium

  Ce.Load3dTiles.TilesetScene.url = "/resource/Scene/Production_2.json";

    Ce.Load3dTiles.TilesetScene.OBJ = Ce.Viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
        url: Ce.Load3dTiles.TilesetScene.url,
        show: true,
        debugHeatmapTilePropertyName: "",
        baseLayerPicker: true,
        maximumScreenSpaceError: 2,//最大的屏幕空间误差
        maximumNumberOfLoadedTiles: 5000,  //最大加载瓦片个数
        luminanceAtZenith: 0.2,
        modelMatrix: Cesium.Matrix4.IDENTITY,

    }));

2、导入 KML 到 3dTiles 上

    Ce.Load3dTiles.TilesetScene.OBJ.readyPromise.then(function (argument) {
        let tileset = Ce.Load3dTiles.TilesetScene.OBJ;
        var boundingSphere = tileset.boundingSphere;
        var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
        var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
        var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 40.05);//40.05 为调整Tiles的高程,有时候高程不一致时需要用得到。如果是一致的,则为0.可以与参照点进行对比。
        var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
        tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);

        let kmlFileUrl = "/resource/kml/5d.kml";//5d.kml 这里为CAD转换成的KML
        let options = {
            camera: Ce.Viewer.scene.camera,
            canvas: Ce.Viewer.scene.canvas,
        };

        Ce.Viewer.dataSources.add(
            Cesium.KmlDataSource.load(
                kmlFileUrl,
                options
            )
        );
}

3、打开CAD 并编辑

如果需要高程也一致,那么需要将CAD里所有的点与线的Z轴都赋予正确的高程值,将CAD的工作空间设置为:三维建模会方便一些,如果不需要高程一致,那么平面的就可以了。

如果是平面的话,则需要在CAD导出工具中,将全贴地面勾上再导出,并且需要保证KML的高程比tiles的要高。

4、找到参照中心点

参照点用于对比 调整 高程、坐标的。

在Google地图中找到参照点,并记下坐标

在CAD的图纸中,也找到同一个参照点,并将CAD的整个图纸移动,以这个参照点移动,移动到0,0的位置。

5、使用CAD转KML工具

acad2kml.zip-互联网文档类资源-CSDN下载

下载这个工具,并解压,并拖动到CAD窗口

使用acad2kml命令

将刚才在Google 地图中记下的参照点坐标,填上。

然后选择保存的位置,再接着在CAD中选择要导出的对象,鼠标右键确定,既可导出KML。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Cesium高程转换是指将地球表面上的高程数据转换为Cesium地球上的高程数据。Cesium是一种基于Web的地理信息系统( GIS )软件平台,可以用于浏览、可视化和分析地球表面的各种地理数据。 在进行Cesium高程转换时,首先需要获取地球表面的高程数据。常用的高程数据包括数字高程模型( DEM )和激光雷达(LIDAR)数据。DEM是由航空或卫星传感器获取的地形数据集,可以描述地球表面的高低起伏。LIDAR则是通过激光束扫描地面,测量地球表面的高程信息。 一旦获得了地球表面的高程数据,就可以使用Cesium高程转换工具来将其转换为Cesium地球上的高程数据。这个过程包括两个主要步骤:插值和投影。 插值是将地球表面上的离散高程数据通过某种插值算法,生成一个连续的高程模型。常用的插值算法包括三角网格插值和反距离插值等。 投影是将高程模型从地球坐标系转换为Cesium的场景坐标系。在这个过程中,需要考虑地球的椭球体形状、坐标系的转换和数据的缩放等因素。 一旦完成了高程转换,就可以将转换后的高程数据加载Cesium平台上,实现对地球表面高程的可视化和分析。用户可以通过各种方式,如渲染三维地形、生成等高线图或进行洪水模拟等,来使用这些高程数据。 总之,Cesium高程转换是将地球表面上的高程数据转换为Cesium地球上的高程数据的过程,它能够为地理信息系统的可视化和分析提供更加精确和详细的高程数据支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天道酬勤~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值